Data sets are frequently communicated or delivered in hierarchical data structures. Such hierarchical data structures can be stored in structured documents, such as eXtensible Markup Language (XML) documents. XML documents, for example, are widely accepted by various processing programs and data exchange systems, wherein the data in the XML document is used directly or transformed into a data structure used by the receiving program or system.
In contrast to the communications and delivery of data, database systems are generally used to store and manipulate data. Relational database systems are a popular type of database system due to the many widely known benefits to storing and manipulating data stored in relational databases. Relational databases are generally maintained by software systems that are referred to as Relational Database Management Systems (RDBMS). RDBMSs are generally able to be distributed among two or more computer nodes that are able to be physically and even geographically separated. An enterprise is also able to distribute data among multiple RDBMSs that are hosted on different computers. Retrieval of a complete set of data for a particular request in such enterprises then requires access to the multiple RDBMSs.
A common data manipulation process is the publishing of data out of a database in an XML format. This is currently done by specifying a mapping from a relational database to a hierarchical structure.
Typically, the generated hierarchical structure is exported to multiple clients. Each client subsequently queries this structure via an XML query language such as XML Query, eXtensible Stylesheet Language (XSL) or XML Path Language (XPath). The queries executed by a client will typically explore only a limited portion of the generated XML data, and each client will explore different portions of the data. Therefore, an XML document, which can be quite large and which is not going to be used in its entirety, is generated and transmitted.
Accordingly, there is a need for improved techniques for generating and transmitting documents such that each client may receive only the data that is relevant for its queries.